package com.bawei.library_common.aop

import android.text.TextUtils
import com.alibaba.android.arouter.launcher.ARouter
import com.bawei.library_common.route.ARouterActivityPath
import com.bawei.library_common.utils.DataStoreUtils
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.annotation.Around
import org.aspectj.lang.annotation.Aspect
import org.aspectj.lang.annotation.Pointcut

/**
 * @Author : yaotianxue
 * @Time : On 2023/6/26 16:34
 * @Description : LoginCheckAspectj
 */
//注意LoginCheckAspectj切面
@Aspect
class LoginCheckAspectj {
    //切面处理的点
    @Pointcut("execution(@com.bawei.library_common.aop.LoginCheck * *(..))")//自定义的ð的名字
     fun loginCheck(){}
    //对切面做逻辑的处理
    @Around("loginCheck()")//上面方法的名称，不要少括号
   @Throws(Throwable::class)
     fun aroundLoginCheck(joinPointcut: ProceedingJoinPoint){
        if(TextUtils.isEmpty(DataStoreUtils.getData("token",""))){//没有登陆过
            ARouter.getInstance().build(ARouterActivityPath.PAGER_LOGIN).navigation()
        }else{//登陆过，执行后续操作
            joinPointcut.proceed()
        }
    }

}